using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Heckel.EasyTools.Diagramming
{
    [Serializable()]
    public class NodeDetailsEventArgs: EventArgs
    {
        private string _nodeID = "";
        public string NodeID
        {
            get { return _nodeID; }
            set { _nodeID = value; }
        }

        private int _nodeUniqueIdentifier;
        public int NodeUniqueIdentifier
        {
            get { return _nodeUniqueIdentifier; }
            set { _nodeUniqueIdentifier = value; }
        }

        private string _nodeName = "";
        public string NodeName
        {
            get { return _nodeName; }
            set { _nodeName = value; }
        }

        private List<string> _log = new List<string>();
        public List<string> Log
        {
            get { return _log; }
            set { _log = value; }
        }

        //these are all configurable at server side
        private string _modalDialogueHtmlToDisplay = "";
        public string ModalDialogueHtmlToDisplay
        {
            get { return _modalDialogueHtmlToDisplay; }
            set { _modalDialogueHtmlToDisplay = value; }
        }

        //these are all configurable at server side
        private string _navigateUrl = "";
        public string NavigateUrl
        {
            get { return _navigateUrl; }
            set { _navigateUrl = value; }
        }

        private Unit _modalDialogueWidth = Unit.Pixel(300);
        public Unit ModalDialogueWidth
        {
            get { return _modalDialogueWidth; }
            set { _modalDialogueWidth = value; }
        }

        private Unit _modalDialogueHeight = Unit.Pixel(300);
        public Unit ModalDialogueHeight
        {
            get { return _modalDialogueHeight; }
            set { _modalDialogueHeight = value; }
        }

        private List<string> _scriptsToExecuteOnModalWindowClose = new List<string>();
        public List<string> ScriptsToExecuteOnModalWindowClose
        {
            get { return _scriptsToExecuteOnModalWindowClose; }
            set { _scriptsToExecuteOnModalWindowClose = value; }
        }

        private List<string> _scriptsToExecuteOnModalWindowShown = new List<string>();
        public List<string> ScriptsToExecuteOnModalWindowShown
        {
            get { return _scriptsToExecuteOnModalWindowShown; }
            set { _scriptsToExecuteOnModalWindowShown = value; }
        }

        public NodeDetailsEventArgs(string nodeID, string nodeName, int nodeUniqueIdentifier, string log)
        {
            string[] splitLog = System.Text.RegularExpressions.Regex.Split(log, "##");
            foreach (string sl in splitLog)
                _log.Add(sl);

            this._nodeID = nodeID;
            this._nodeName = nodeName;
            this._nodeUniqueIdentifier = nodeUniqueIdentifier;
        }
    }
}
